Responsive Grid Layouts for Graphic Design

ABSTRACT

Responsive grid layouts for graphic design are described. In one example, a system of a digital medium environment is configured to generate responsive grid layouts for graphic design. The system includes a layout module implemented at least partially in hardware of the computing device to generate a plurality of grid layouts each having at least one cell configured to be mapped to at least one design element of digital content. The system also includes a scoring module implemented at least partially in hardware of a computing device to assign scores to the plurality of grid layouts based on aesthetic criteria and an output module implemented at least partially in hardware of a computing device to output at least one grid layout of the plurality of grid layouts for recommendation to a user based on the scores.

RELATED MATTERS

This application is a continuation of and claims priority to U.S.Non-Provisional application Ser. No. 15/644,265, filed Jul. 7, 2017 andtitled “Responsive Grid Layouts for Graphic Design,” which in turnclaims priority under 35 U.S.C. Section 119(e) to U.S. ProvisionalApplication No. 62/477,333, filed Mar. 27, 2017, and titled “ResponsiveGrid Layouts for Graphic Design,” the entire disclosures of which arehereby incorporated by reference herein.

BACKGROUND

Applications have been developed to enable users to generate graphicdesigns (e.g., flyers, advertisements, posters, and so on). Generally,these applications fall into two categories: high-end applications andsimple consumer applications. The high-end applications (e.g.,Illustrator™, Photoshop™, Indesign™) give users a great deal of controlbut do not provide much assistance to the users. For example, there islittle intelligence built into the applications to provide algorithmicassistance to the users, requiring a large amount of manual tedious workby the users to create the graphic designs. Simple consumer applications(e.g., Canva™, Pixel77™, simple photo-collage applications for mobiledevices) also have little algorithmic assistance for helping userscreate graphic designs. Because of these limitations in conventionalgraphic design applications, creating simple graphic designs is achallenging task for novices.

SUMMARY

Responsive grid layouts for graphic design are described. In oneexample, a plurality of grid layouts are generated using existingcontent. The grid layouts include cells that can be mapped to at leastone design element of digital content. Scores are assigned to the gridlayouts based on various aesthetic criteria to determine the “best” gridlayouts for the content. Then, at least one grid layout is output forrecommendation to a user based on the scores.

In another example, a user can manipulate a first grid cell of a gridlayout of a graphic design, such as by changing its size, and inresponse, the first grid cell is dynamically modified. Then, a secondgrid cell adjacent to the first grid cell is automatically modified,such as by changing its size relative to the change in size of the firstgrid cell. Based on the modifications to both the first and second gridcells, the system automatically adjusts, in real time, at least oneparameter of content displayed within the first grid cell and at leastone parameter of content displayed within the second grid cell.

This Summary introduces a selection of concepts in a simplified formthat are further described below in the Detailed Description. As such,this Summary is not intended to identify essential features of theclaimed subject matter, nor is it intended to be used as an aid indetermining the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. Entities represented in the figures may be indicative of one ormore entities and thus reference may be made interchangeably to singleor plural forms of the entities in the discussion.

FIG. 1 is an illustration of an environment in an example implementationthat is operable to employ responsive grid layouts for graphic designtechniques described herein.

FIG. 2 is an illustration of a digital medium environment in an exampleimplementation showing applications of FIG. 1 in greater detail asconfigured for generating responsive grid layouts for graphic design.

FIG. 3 illustrates an example implementation of a user interface outputby the computing device in which content can be switched to differentcells in a grid layout.

FIG. 4 illustrates an example implementation of a user interface outputby the computing device in which cell contents are automaticallyadjusted based on a cell being resized.

FIG. 5 illustrates an example implementation of a user interface outputby the computing device in which different grid layout suggestions areselected.

FIG. 6 illustrates an example implementation of a user interface outputby the computing device in which a layout of elements within a cell areadjusted automatically based on the cell being resized.

FIG. 7 illustrates an example implementation of a user interface outputby the computing device in which an overall grid layout is resized.

FIG. 8 illustrates an example implementation of a user interface outputby the computing device in which a new design element is automaticallyformatted based on existing content.

FIG. 9 illustrates an example implementation of a user interface outputby the computing device in which spacing and margins of the grid layoutare adjusted.

FIG. 10 is a flow diagram depicting a procedure in an exampleimplementation in which responsive grid layouts for graphic design aremanipulated.

FIG. 11 is a flow diagram depicting a procedure in an exampleimplementation in which responsive grid layouts for graphic design aregenerated.

FIG. 12 illustrates an example system including various components of anexample device that can be implemented as any type of computing deviceas described and/or utilize with reference to FIGS. 1-11 to implementembodiments of the techniques described herein.

DETAILED DESCRIPTION Overview

Conventional techniques that enable users to create graphic designsgenerally provide little algorithmic assistance to the users,particularly for exploring variations of layouts for a graphic design.Thus, creating simple graphic designs can be challenging for novicedesigners who lack experience or talent in graphic design.

Accordingly, techniques for responsive grid layouts for graphic designare described to provide a user with an ability to explore the space ofpossible designs using layouts formed from a grid (referred to herein as“grid layouts”). The techniques described herein generate new layoutsuggestions using existing content, which allows the user to cyclethrough and explore a variety of different layout variations rather thansimply building a new layout from a single layout. Each new layoutsuggestion is formed from grid cells that each include a portion of thecontent. The techniques described herein also enable automatic resizingof a grid layout, and adaptively select appropriate grid layouts forrecommendation to the user based on various aesthetic criteria, such asaspect ratio, of the design.

The grid allows freeform placement of text or images, which the systemprocesses automatically. The grid also allows the user to reposition,resize, or rotate the text. Then, when the user resizes the overalllayout or resizes one or more cells in the layout, the systemautomatically adjusts the content within the cells to maintain anaesthetic quality of the design.

In this way, novice designers can be provided automatic assistance viathe application in creating graphic designs, thus enhancing the userexperience and enabling the novice designers to more easily createprofessional-level designs.

Further discussion of these and other examples is included in thefollowing sections and shown in corresponding figures.

Term Examples

“Design element” describes a portion of content in a graphic design suchas text, an image, or a video. The design element represents. Eachdesign element can be mapped to a particular cell of the grid layout,and positioned and sized to fit aesthetically within that cell. In atleast one example, a group of design elements can be grouped as one unitthat can be preserved as it is moved to different locations in thegraphic design.

“Grid layout” describes a layout formed by a plurality of cells thatform a grid. A cell in the grid (also referred to herein as “gridcells”) can be mapped to various design elements, or various designelements can be mapped to the cell. Grid layouts can include a varietyof different numbers of cells, aspect ratios of the cells, aspect ratiosof the grid layouts, cell arrangements (relative positions), sizes ofspacing between the cells, sizes of margins, relative layouts of asubset of elements within a cell, overlap (foreground/backgroundpositioning of cells), and so on. Accordingly, a wide variety ofdifferent grid layouts can be created to represent different graphicdesigns.

“Aesthetic criteria” describes rules that can be applied to the contentof the grid layout. In implementations, the aesthetic criteriarepresents thresholds pertaining to different visual characteristics ofa design element(s) within a cell, or of an overall grid layout.Examples of aesthetic criteria include symmetry, cell aspect ratios,text density in a cell, and so on. For instance, the design element(s)within a cell can be analyzed for symmetry within the cell or inrelation to design elements in other cells of the grid layout, andappropriately positioned within the cell. Additionally, the cell aspectratio is used to determine whether the design element in the cell is toolarge or too small to be visually pleasing to consumers. Further, thetext density with a cell is analyzed to determine whether the cellincludes too much text. Accordingly, aesthetic criteria describes avariety of different visual characteristics of the content in the gridlayout with respect to each cell.

“Parameters” refer to characteristics of a design element, such as textor an image. Examples of parameters include size, alignment, position,orientation, and so on. Accordingly, parameters describe a variety ofdifferent characteristics of the design element.

In the following discussion, an example environment is first describedthat may employ the techniques described herein. Example procedures arealso described which may be performed in the example environment as wellas other environments. Consequently, performance of the exampleprocedures is not limited to the example environment and the exampleenvironment is not limited to performance of the example procedures.Finally, an example system and device is described that may implementthe various techniques described herein.

Example Environment

FIG. 1 depicts an example digital medium environment 100 configured tosupport responsive grid layouts for graphic design. As used herein, theterm “digital medium environment” refers to the various computingdevices and resources that can be utilized to implement the techniquesdescribed herein. The illustrated digital medium environment 100includes a computing device 102 including a processing system 104 thatincludes one or more processing devices, one or more computer-readablestorage media 106, and various applications 108 embodied on thecomputer-readable storage media 106 and operable via the processingsystem 104 to implement corresponding functionality described herein.

In at least some implementations, the applications 108 include orotherwise make use of a layout module 110 and a scoring module 112. Insome implementations, the layout module 110 and the scoring module 112are standalone applications. In other implementations, one or both ofthe layout module 110 and the scoring module 112 are included as part ofanother application or system software such as a computing device'soperating system.

The layout module 110 is configured to generate a plurality of gridlayout suggestions for a graphic design that a user may explore. Given aset of design elements (e.g., text, images), for example, the layoutmodule 110 can provide a variety of different grid structures withdifferent configurations of the design elements.

The scoring module 112 is configured to assign scores to the grid layoutsuggestions based on various aesthetic criteria pertaining to the designelements in respective cells of the layouts. Using these scores, the“best” permutations can be presented as recommended layouts for thecontent.

This constitutes an improvement over conventional approaches that do notprovide much assistance to users in creating layouts for graphicdesigns. This also constitutes a further improvement over conventionalapproaches that simply build from a single layout and do not allow theuser to explore variations of layouts. In addition, the grid structureallows for more complex graphic designs in comparison to conventionalapproaches that use free-floating elements and lack overall structure totheir layout design.

The layout module 110 is further configured to automatically anddynamically adjust content in a displayed layout responsive to a userinput, such as by positioning or resizing an element or cell. This canbe performed in real time as the user is manipulating the element orcell, which provides immediate visual feedback to the user to allow theuser to see the layout responding to their input. Accordingly, thesystem described herein can make decisions as the user is manipulatingthe element or cell.

This combination of manual and automatic layout control constitutes anadditional improvement over conventional approaches that provide controlto the user but without automatic assistance. This combination of manualand automatic layout control provides a fast, efficient, and easilyscalable solution, as discussed below in more detail.

The computing device 102 may be configured in a variety of ways. Forexample, the computing device 102 may be configured as a desktopcomputer, a laptop computer, a television, a mobile device (e.g.,assuming a handheld configuration such as a tablet or mobile phone), atablet, a digital camera, and so forth. Additionally, although a singlecomputing device 102 is shown, the computing device 102 may berepresentative of a plurality of different devices to perform operations“over the cloud” as further described in relation to FIG. 12.

Although functionality of the layout module 110 and the scoring module112 is illustrated as implemented locally on the computing device 102,the functionality of the layout module 110 and the scoring module 112may also be implemented in whole or in part via a service providersystem 114 via a network 116. The service provider system 114 isconfigured to communicate with the computing device 102 over the network116, such as the Internet, to provide a “cloud-based” computingenvironment. Generally speaking, the service provider system 114 isconfigured to make various resources 118 available over the network 116to a user of the computing device 102. The resources 118 can include anysuitable combination of services and/or content typically made availableover a network by one or more providers. Some examples of servicesinclude, but are not limited to, a social networking service, a graphicdesign service, an image sharing service, and so forth.

Although the network 116 is illustrated as the Internet, the network mayassume a wide variety of configurations. For example, the network 116may include a wide area network (WAN), a local area network (LAN), awireless network, a public telephone network, an intranet, and so on.Further, although a single network 116 is shown, the network 116 may berepresentative of multiple networks.

Example Implementations

FIG. 2 illustrates an example implementation 200 of operation of variousmodules of the computing device 102 in greater detail. The applications108 are illustrated as including the layout module 110, the scoringmodule 112, a selection module 202, and an output module 204. Thesemodules can be implemented in hardware, software, firmware, or acombination thereof.

The layout module 110 is implemented at least partially in hardware of acomputing device to generate a variety of different grid layouts forexisting content 206. Each grid layout includes at least one cellconfigured to be mapped to at least one design element of digitalcontent. The scoring module 112 assigns scores to the grid layouts basedon a variety of criteria, such as aesthetic criteria 208, layoutheuristics 210, and aspect ratio 212.

The aesthetic criteria 208 refers to rules applied to the content inrelation to the grid layout to avoid a low quality layout of content,such as a layout that is not visually pleasing to the user. For example,cells that are too narrow or too thin are penalized with a low score sothey may be avoided. When creating a new layout, the system tends towardcells having an aspect ratio of approximately 1:1, 1:2, 2:1, and so on,which generally provide sufficient space for the layout of contentwithin the cell. In implementations, the aesthetic criteria 208 is usedto determine whether the content within a cell includes good symmetry,whether the content is too dense within the cell, whether spacingbetween the content in the cell and boundaries of the cell is anappropriate size, whether the content is sized appropriately in relationto the size of the cell, and so on.

Layout heuristics 210 are used to place design elements into a gridcell. The layout heuristics 210 can be used to group different designelements together within a cell. For instance, if two or more designelements (e.g., text) are aligned, either within a cell or acrossdifferent cells of the grid layout, then that alignment can be used toindicate whether to group those elements. Additionally, if two or moredesign elements are proximate one another, then that proximity can beused determine whether to group those elements. Then, if the grid layoutis modified or changed, the group of elements can be automaticallymaintained in the new grid layout. In one example, if different textelements are aligned but located in different cells, then when the gridlayout is changed to a new grid layout, the entire group of textelements can be positioned within the same cell in the new grid layout.Additionally or in the alternative, the layout heuristics 210 can alsobe used to split a group of design elements into multiple groups thatcan be positioned within a same cell or spread across multiple cells.

Aspect ratio 212 refers to an aspect ratio of an individual cell or anaspect ratio of the overall grid layout. The aspect ratio 212 is used todetermine positioning of content within a cell or within the gridlayout. In implementations, the aspect ratio 212 is used to determinewhether content in a cell is appropriately sized and/or positioned. Forexample, if a large image of a face is placed within a cell and theaspect ratio 212 of that cell is such that the face is only partiallyvisible, then the image can be resized or cropped based on the aspectratio 212 of that cell. If the image cannot be resized or cropped to anappropriate size, then this particular permutation may be scored with alow score.

The selection module 202 is implemented at least partially in hardwareof a computing device to select grid layouts from those generated by thelayout module 110. In implementations, the selection module 202 canselect particular grid layouts based on the assigned score of the gridlayouts. In this way, low scoring grid layouts may not be shown to theuser and may be discarded. On the other hand, high-scoring grid layoutsare selected as having the “best” mapping of content to their particularlayout based on the applied rules (e.g., aesthetic criteria 208, layoutheuristics 210, aspect ratio 212, and so on).

The output module 204 is implemented at least partially in hardware of acomputing device to output at least one grid layout for recommendationto the user based on the scores. In implementations, the output module204 is configured to output the grid layouts selected by the selectionmodule 202, which are the highest-scoring grid layouts having arelatively highest level of visual quality based on the applied rules.These grid layouts are output as recommended layout designs for the userto explore.

FIG. 3 illustrates an example implementation 300 of a user interfaceoutput by the computing device 102 in which content can be switched todifferent cells in a grid layout. In the illustrated example, thecomputing device 102 includes a user interface 302 via which a graphicdesign is presented having a grid layout with multiple cells, such ascells 304, 306, 308. For example, cell 304 includes “it's here!” text,cell 306 includes “HOLIDAY SALE EVENT 30% OFF” text, and cell 308includes in image of a car. In addition, the user interface 302 includesseveral grid layout designs represented by selectable user interfaceinstrumentalities, such as icons 310 a-d.

In an example, icon 310 c represents a similar grid structure to thedisplayed grid layout, but includes arrows indicating a change of cellposition or content position relative to cell position. When the userselects icon 310 c, the content in each cell is relocated to an adjacentcell. For example, the “it's here!” text in cell 304 in scenario 300 ais relocated to cell 308 in scenario 300 b, the text elements in cell306 in scenario 300 a are relocated to cell 304 in scenario 300 b, andthe image in cell 308 in scenario 300 a is relocated to cell 306 inscenario 300 b. Accordingly, the cell contents are moved to aneighboring cell in a counterclockwise direction. Alternatively, thecontents can be moved to adjacent cells in a clockwise direction. Thisallows the user to quickly and easily view variations of the content indifferent cells of the grid layout.

FIG. 4 illustrates an example implementation 400 of a user interface 302output by the computing device 102 in which cell contents areautomatically adjusted based on a cell being resized. In the illustratedexample, the user interface 302 includes a grid layout that wasgenerated using design elements selected or inserted by a user. Usingthe structure of the grid layout, a control point 402 is selected basedon a user input, where the control point 402 corresponds to a cellboundary 404 positioned between cell 304 a and cell 306 a. The user canthen move the cell boundary 404 in a direction orthogonal to the cellboundary 404 itself, such that the cells 304, 306 on either side of thecell boundary 404 are resized (e.g., increased or decreased in size). Inthe illustrated example, the user slides the cell boundary 404 to theright (indicated by arrow 406), which enlarges cell 304 a and shrinkscell 306 a, resulting in an enlarged cell 304 b and a shrunken cell 306b.

Based on the change in size of both cells, the content within each cellis analyzed according to the aesthetic criteria 208, the layoutheuristics 210, and the aspect ratio 212 to determine whether thecontent is appropriately sized and positioned within the cell. In thisexample, enlarging the cell 304 a creates additional space around thetext located within the enlarged cell 304 a. As such, the text withinthe cell 306 a is enlarged and recentered within the enlarged cell 304b. In addition, the size of the cell 306 a is decreased, which createsless space for the text located within the shrunken cell 306 b.Accordingly, the text within the shrunken cell 306 b is resized to asmaller font. The cell resizing and the text modifying are all done inreal time as the user is manipulating the cell boundary 404. In thisway, the user is provided immediate visual feedback regarding thechanges being made to the grid layout. In some embodiments, manipulatingthe cell boundary 404 can include manipulating the space within the cellboundary 404 to cause a cell and its surrounding cells to be resized andthe text within the cell and the text within the surrounding cells to bemodified in real time in response to the manipulation.

The user can then, with or without interrupting the input (e.g., with orwithout releasing a mouse click or removing his finger from a touchsurface of the computing device 102), move the cell boundary 404 fartherin the same direction or in an opposing direction (e.g., left), asindicated by arrow 408. As the cell boundary 404 is moved, the cell 304b is adjusted to a smaller size while the cell 306 b is enlarged,resulting in cell 304 c and cell 306 c. Again, the content within eachcell 304 c, 306 c is scaled to appropriately fit within the cell. Anyinterior cell boundary (e.g., cell boundary between two or more cells)can be moved by the user to resize corresponding cells. This gives theuser a great deal of control while simultaneously providing automaticassistance to the user by dynamically modifying cell contents in realtime to appropriate positions and sizes based on the visualcharacteristics of the content in each cell.

In addition, the user can, at any time, move the contents from one cellto another cell. In at least some implementations, moving the contentsfrom one cell to another cell that already includes content can causethe contents of those two cells to automatically switch places. If thosetwo cells differ in size or aspect ratio, the content is automaticallyadjusted to “fit” within the new size or aspect ratio. In an example,the user performs a drag gesture, such as by sliding his finger fromlocation 410 to location 412 or by clicking the location 410 anddragging the cursor to location 412. This input indicates that the userwishes to move the image of the car from cell 308 a to cell 306 c. Inresponse to this input, the system automatically switches the contents(e.g., text and image) of those two cells, makes appropriatemodifications to the contents, and displays the contents in their newpositions, as shown in cell 306 d and cell 308 b.

FIG. 5 illustrates an example implementation 500 of a user interface 302output by the computing device 102 in which a different grid layoutsuggestions are selected. As described above, a variety of grid layoutsuggestions are generated for the user to explore using the givencontent. While exploring these grid layout suggestions, the content isautomatically positioned and sized in respective cells of each selectedlayout to give the user a fast and efficient view of what the user'sgraphic design will look like in each selected layout.

In the illustrated example, various grid layout suggestions aredisplayed via the user interface 302, which are represented by iconssuch as icons 310 a-d. Here, the current grid layout 502 displayed inthe user interface 302 corresponds to icon 310 c, which represents agrid layout having two cells distributed in an upper portion of the gridand one cell disposed on the lower portion. The icons 310 a-d areselectable to change the layout of the displayed content in the userinterface 302.

For example, the user selects icon 310 d representing a grid layouthaving two cells adjacent one another top to bottom. When the userselects the icon 310 d, the content displayed in the user interface 302is adjusted to correspond to a new grid layout 504. For example, the newgrid layout 504 includes cell 506 and cell 508. Because the content inthe grid layout 502 was distributed among three cells but the new gridlayout only includes two cells, some of the content can be groupedtogether as a unit to be displayed in a single cell. Here, the systemdetermines that the text that was formerly located within cell 304 andcell 306 can be grouped together to be positioned within the cell 508 inthe new grid layout 504. The grouping is based on the layout heuristics210, such as alignment or proximity, as described above. Given a groupof text elements that are to be placed in a new cell and which have amicro-layout (e.g., a relative layout of a subset of elements) relativeto one another, the system can use complex text layout heuristics to tryto match the existing text elements' original size, alignment, andspacing while positioning the group in the new cell. However, while thesystem tries to match the original formatting of the text elements, thetext elements may be modified based on the aspect ratio of the new cell.For example, the text from the cell 304 and cell 306 is resized to fitaesthetically within the cell 508 to provide a more visually pleasinggraphic design.

In an example, when the user selects a new grid layout, the icons 310a-d can be shifted to reveal additional grid layout suggestions.Additionally, the user can scroll through the icons to reveal additionalicons representing even more grid layout suggestions. Here, the userselects icon 510 a, which represents a grid layout having two cellspositioned side-by-side (left to right), and the grid layout 504 ischanged to grid layout 512. The contents (e.g., text) of cell 508 arerepositioned and mapped to cell 514, and the contents (e.g., image) ofcell 506 are mapped to cell 516. Notice that in mapping the text to cell514, several changes are made to resize, realign, and reposition thetext within the cell 514. In implementations, each line of text can beconsidered an individual design element. Alternatively, each word oftext can be considered an individual design element. Each design elementis automatically adjusted based on the size or aspect ratio of the cellin which the design element is placed. Here, the “it's here!” text isenlarged and the size of the “HOLIDAY” text is reduced. In addition, the“SALE EVENT” text is divided into “SALE”, which is enlarged, and “EVENT”which maintains a substantially same size. Further, the “30% OFF” textis divided into two separate elements “30%” and “OFF”, and both elementsare reduced in size and aligned one above the other.

As before, at least one additional icon, such as icon 510 b, can bepresented when displaying the selected grid layout. The user can selecticon 510 b to cause the grid layout 512 to switch to grid layout 518,which includes a foreground cell 520 overlaid in front of a backgroundcell 522. In this grid layout, the foreground cell 520 can not only beresized, e.g., by moving control points 524, but the foreground cell 520can also be moved to a different position relative to the backgroundcell 522 layered underneath. In addition, the foreground cell 520 can bemade semitransparent to cause the contents of the background cell 522underneath to be partially visible through the foreground cell 520. Inaddition, changing the grid layout 512 to the grid layout 518dynamically updates the contents of the cells based on theabove-described rules.

In at least some implementations, a user-selectable option can beprovided to disable automatic resizing, reformatting, and/orrepositioning of one or more design elements when switching betweendifferent grid layouts. In one example, one or more text elements areselected, automatically or via user input, and image elements can beresized and repositioned based on a new selected grid layout, but theone or more text elements remain in place with no changes. In somecases, this may cause a particular text element to overlap multiple gridcells. Any design element can be selected and the automatic resizing,reformatting, and/or repositioning of the selected design elementdisabled for that selected design element to allow more versatility tothe grid layout suggestions.

FIG. 6 illustrates an example implementation 600 of a user interfaceoutput by the computing device 102 in which a layout of elements withina cell are adjusted automatically based on the cell being resized. Inscenario 600 a, the user can adjust the aspect ratio of cell 602 bymoving control point 604. For example, as the user moves the controlpoint 604 down to decrease a height of the cell 602, the height of thetext in the cell 602 may no longer be shorter than the height of thecell 602. Thus, the text may be automatically modified to correspond tothe new height of the cell 602. For instance, in scenario 600 b, thetext within cell 602 is divided into two groups that are positionedhorizontally side by side within the cell 602. If the user reduces theheight of the cell 602 further, as in scenario 600 c, the text isautomatically adjusted by dividing the text into three groups that aredistributed horizontally across the cell 602. The font size of some ofthe text is also reduced to reduce the height and/or width of the text.As described above, the user can move the cell 602 to a differentlocation relative to a cell 606 underneath, such as by selecting thecell 602 and dragging the cell 602 from input location 608 to inputlocation 610.

FIG. 7 illustrates an example implementation 700 of a user interfaceoutput by the computing device 102 in which an overall grid layout isresized. For example, a grid layout 700 a corresponding to an aspectratio of 1:1 is displayed. In implementations, various different aspectratios can be represented by selectable user interfaceinstrumentalities, such as icons 702 a-d, that are displayed via theuser interface. Selecting one of the icons can change the aspect ratioof the graphic design, and in some cases, change the grid layout toconform to the new aspect ratio based on the aesthetic criteria.

For example, the user selects aspect ratio 2:1 by selecting icon 702 band the graphic design is automatically resized to the selected aspectratio. Because of the change in the aspect ratio, the grid layout 700 ais changed to a new grid layout 700 b that more appropriatelycorresponds to the height of selected aspect ratio. Contents of thecells in the original grid layout 700 a are moved to new cells in thegrid layout 700 b based on the above-described rules. When the userselects icon 702 c, the grid layout 700 b changes grid layout 700 chaving a corresponding aspect ratio of 1:2, and again adjusts one ormore parameters of the design elements in the cells to a recommendedstate in each cell. This particular grid layout 700 c has positioned thecells vertically since the width of the grid layout 700 c is small incomparison to the height. The user can select icon 702 d, whichcorresponds to an aspect ratio of 3:1, and the grid layout 700 c changesto grid layout 700 d and dynamically updates the design elements in eachcell of the grid layout 700 d.

The user can view additional aspect ratios by sliding the icons 702 a-din any direction to reveal additional icons. In this way, the user canexplore a wide variety of sizes of graphic designs that are eachpresented with automatic adjustments to the existing design elements.

FIG. 8 illustrates an example implementation 800 of a user interfaceoutput by the computing device 102 in which a new design element isautomatically formatted based on existing content. The computing device102 enables more sophisticated free-form placement of text by the userin comparison to conventional techniques, and the system can handle thetext automatically. For example, when a user inserts a new designelement, such as text, the new design element can be automaticallyformatted to substantially match existing content within a cell orwithin the overall grid layout. Some examples of format adjustmentsincludes font characteristics (e.g., style, size, color, language,transparency, and so on) and positioning (e.g., spacing, alignment withother text in the same cell, alignment with other text in a differentcell).

In one example, a user inserts a new text element 802 a into the gridlayout. As the user enters text into the text element 802 a, the textincludes a default font. Alternatively, the font can initially match thefont of text in an adjacent cell, such as the “HOLIDAY SALE EVENT” textin the upper right cell, cell 804, or the “30% OFF” text in the bottomcell, cell 806. In implementations, responsive to the text being enteredin the text element 802 a, the system can automatically format the textelement 802 a to substantially match other text in the grid layout. Thetext can be formatted to match other text within the same cell, or forone or more aesthetic reasons the text can be formatted to match othertext in a different cell.

After entering the text in the text element 802 a, the user then movesthe text element 802 a to a different cell, e.g., the bottom cell 806,as illustrated by arrow 808. In implementations, formatting (e.g., font,color) of the text element is preserved when moving the element.Alternatively, the system can, responsive to the movement, automaticallyreformat the text element 802 a as text element 802 b to substantiallymatch other text in the grid layout. As above, the text can be formattedto match other text within the same cell, or for one or more aestheticreasons the text can be formatted to match other text in a differentcell. Here, the text element 802 b is modified to substantially matchthe “it's here!” text located in the upper left cell 810. In addition,the “30% OFF” text that was previously centered within the cell 806 isrepositioned to allow for the insertion of the text element 802 b inaccordance with symmetry and alignment rules. However, the user can makefurther adjustments to the design elements, such as by moving textelement 812 and increasing the font size.

In addition, the text element 802 can be cycled through a plurality offormatting variations based on a user input. This cycling option canallow a user to quickly and easily view the text element 802 in avariety of different suggested formats that may correspond in one ormore aesthetic ways to one or more other design elements in the graphicdesign.

FIG. 9 illustrates an example implementation 900 of a user interfaceoutput by the computing device in which spacing and margins of the gridlayout are adjusted. In an example, spacing 902 between cells in a gridlayout can be adjusted based on a user input that selects a spacingcontrol, such as control 904. The user can move the control 904 invarious directions to increase or decrease a size of the spacing 902between the cells. In at least one implementation, the user can selectparticular cells to adjust the spacing therebetween, rather thanuniformly adjusting the spacing between all the cells of the gridlayout. Adjusting the spacing between the cells may decrease or increasethe size of adjacent cells. Because of this, the content within thecells is again analyzed based on the rules for aesthetic criteria,spacing, alignment, aspect ratio, and so on, as described above, andcorresponding changes are automatically made to the content within thosecells.

In addition, margins 906 around the outside edges of the overall gridlayout can be adjusted based on a user input that selects a margincontrol, such as control 908. The user can move the control 904 invarious directions to increase or decrease a size of the margins. In atleast one implementation, the user can adjust margins individually or insubgroups rather than uniformly adjusting all the margins at once.Similar to spacing adjustments, adjusting the margins may affect thesize of some of the cells. Accordingly, the content within the cells isagain analyzed based on the above-described rules, and correspondingchanges are automatically made to the content within those cells.

Example Procedures

The following discussion describes techniques for automatic capture andrefinement of a group image without user intervention that may beimplemented utilizing the previously described systems and devices.Generally, any of the components, modules, methods, and operationsdescribed herein can be implemented using hardware (e.g., fixed logiccircuitry), firmware, software, or any combination thereof. Someoperations of the example methods may be described in the generalcontext of executable instructions stored on computer-readable storagememory that is local and/or remote to a computer processing system, andimplementations can include software applications, programs, functions,and the like. Alternatively or in addition, any of the functionalitydescribed herein can be performed, at least in part, by one or morehardware logic components, such as, and without limitation,Field-programmable Gate Arrays (FPGAs), Application-specific IntegratedCircuits (ASICs), Application-specific Standard Products (ASSPs),System-on-a-chip systems (SoCs), Complex Programmable Logic Devices(CPLDs), and the like.

FIG. 10 is a flow diagram depicting a procedure in an exampleimplementation 1000 in which responsive grid layouts for graphic designare manipulated. The procedures are shown as a set of blocks thatspecify operations performed by one or more devices and are notnecessarily limited to the orders shown for performing the operations bythe respective blocks. In at least some implementations the proceduresmay be performed in a digital medium environment by a suitablyconfigured device, such as the example computing device 102 of FIG. 1.

At 1002, a first grid cell of a plurality of grid cells forming a gridlayout of a graphic design is dynamically modified based on a user inputthat manipulates the first grid cell. A variety of modifications can bemade to the first grid cell, examples of which are described above, suchas with respect to FIGS. 4 and 6.

At 1004, a second grid cell of the plurality of grid cells isautomatically modified in response to modifying the first grid cell. Inan example, the second grid cell shares a same line as the first gridcell. In some implementations, the second grid cell may be adjacent tothe first grid cell. Alternatively, the second grid cell may beseparated from the first grid cell by a define distance or by one ormore other cells. For example, in a 3×3 grid, a change to a bottom cellcan affect a change to a top cell that is in a same or adjacent columnor row but that is not adjacent to the bottom cell. In implementations,the modification to the second grid cell triggered by the modificationto the first grid cell can include re-sizing or re-shaping the secondgrid cell. Further, the modification of the second grid cell can includea re-layout of the second grid cell. The re-layout can also include are-layout of any affected cell, such as the first grid cell and/or oneor more additional cells in the grid layout.

At 1006, at least one parameter of first content displayed within thefirst grid cell and at least one parameter of second content displayedwithin the second grid cell are automatically adjusted. Any suitableparameter can be adjusted, examples of which include fontcharacteristics and positioning of the content. Additional examples aredescribed above with respect to FIG. 4.

Optionally at 1008, the first content and the second content aredynamically updated based on a change to a size of the grid layout or achange from the grid layout to a different grid layout. Updates tocontent within a cell can occur to fit the content appropriately to anew size of the cell. Additionally, updates to content within a cell canoccur to fit to a new overall grid layout that has a different layoutand/or aspect ratio than the previous grid layout. These updates occurin real time as the user is manipulating any of the cell size, the gridlayout size, or the grid layout.

FIG. 11 is a flow diagram depicting a procedure 1100 in an exampleimplementation in which responsive grid layouts for graphic design aregenerated. The procedures are shown as a set of blocks that specifyoperations performed by one or more devices and are not necessarilylimited to the orders shown for performing the operations by therespective blocks. In at least some implementations the procedures maybe performed in a digital medium environment by a suitably configureddevice, such as the example computing device 102 of FIG. 1.

Optionally at 1102, a subset of design elements of content in a gridlayout is grouped together as a unit. The subset of design elements canbe grouped in any suitable way, such as by utilized the layoutheuristics 210 described above with respect to FIG. 2.

At 1104, a plurality of grid layouts are generated that each have atleast one cell configured to be mapped to at least one design element ofdigital content. At 1106, scores are assigned to the plurality of gridlayouts based on aesthetic criteria. In implementations, each gridlayout is scored with a value representing its corresponding degree ofaesthetic quality, where the level of aesthetic quality is based on theaesthetic criteria 208 described with respect to FIG. 2.

At 1108, at least one grid layout of the plurality of generated gridlayouts is selected for recommendation to a user based on the scores. Inat least one example, highest-scoring grid layouts are selected to useas suggested grid layouts for the user to explore.

At 1110, the selected grid layout(s) is presented to the user. Forexample, selected grid layouts can be presented as selectable optionsfor the graphic design that the user can select to explore various gridlayouts using existing content.

Optionally at 1112, a size of a displayed grid layout is changed basedon a user input. For instance, the grid size can be modified based on auser input that selects a different aspect ratio. Examples of changingthe size of the grid layout are described above, at least with respectto FIG. 7.

Optionally at 1114, a new grid layout is generated for content in thedisplayed grid layout if the aesthetic criteria is not met. For example,if a grid layout is assigned a low score based on the aesthetic criteria208, then that particular grid layout can be discarded and a new,different grid layout generated. The aesthetic criteria 208 is used topresent particular grid layout suggestions to the user that meet avisual quality threshold. This reduces the number of possibilitiespresented to the user and reduces a processing load on the processingsystem 104 of the computing device 102 or on the service provider system114.

Example System and Device

FIG. 12 illustrates an example system generally at 1200 that includes anexample computing device 1202 that is representative of one or morecomputing systems and/or devices that may implement the varioustechniques described herein. This is illustrated through inclusion ofthe applications 108 and, in particular, the layout module 110 and thescoring module 112, which operate as described above. The computingdevice 1202 may be, for example, a server of a service provider, adevice associated with a client (e.g., a client device), an on-chipsystem, and/or any other suitable computing device or computing system.

The example computing device 1202 as illustrated includes a processingsystem 1204, one or more computer-readable media 1206, and one or moreI/O interface 1208 that are communicatively coupled, one to another.Although not shown, the computing device 1202 may further include asystem bus or other data and command transfer system that couples thevarious components, one to another. A system bus can include any one orcombination of different bus structures, such as a memory bus or memorycontroller, a peripheral bus, a universal serial bus, and/or a processoror local bus that utilizes any of a variety of bus architectures. Otherexamples are also contemplated, such as control and data lines.

The processing system 1204 is representative of functionality to performone or more operations using hardware. Accordingly, the processingsystem 1204 is illustrated as including hardware element 1210 that maybe configured as processors, functional blocks, and so forth. This mayinclude implementation in hardware as an application specific integratedcircuit or other logic device formed using one or more semiconductors.The hardware elements 1210 are not limited by the materials from whichthey are formed or the processing mechanisms employed therein. Forexample, processors may be comprised of semiconductor(s) and/ortransistors (e.g., electronic integrated circuits (ICs)). In such acontext, processor-executable instructions may beelectronically-executable instructions.

The computer-readable storage media 1206 is illustrated as includingmemory/storage 1212. The memory/storage 1212 represents memory/storagecapacity associated with one or more computer-readable media. Thememory/storage component 1212 may include volatile media (such as randomaccess memory (RAM)) and/or nonvolatile media (such as read only memory(ROM), Flash memory, optical disks, magnetic disks, and so forth). Thememory/storage component 1212 may include fixed media (e.g., RAM, ROM, afixed hard drive, and so on) as well as removable media (e.g., Flashmemory, a removable hard drive, an optical disc, and so forth). Thecomputer-readable media 1206 may be configured in a variety of otherways as further described below.

Input/output interface(s) 1208 are representative of functionality toallow a user to enter commands and information to computing device 1202,and also allow information to be presented to the user and/or othercomponents or devices using various input/output devices. Examples ofinput devices include a keyboard, a cursor control device (e.g., amouse), a microphone, a scanner, touch functionality (e.g., capacitiveor other sensors that are configured to detect physical touch), a camera(e.g., which may employ visible or non-visible wavelengths such asinfrared frequencies to recognize movement as gestures that do notinvolve touch), and so forth. Examples of output devices include adisplay device (e.g., a monitor or projector), speakers, a printer, anetwork card, tactile-response device, and so forth. Thus, the computingdevice 1202 may be configured in a variety of ways as further describedbelow to support user interaction.

Various techniques may be described herein in the general context ofsoftware, hardware elements, or program modules. Generally, such modulesinclude routines, programs, objects, elements, components, datastructures, and so forth that perform particular tasks or implementparticular abstract data types. The terms “module,” “functionality,” and“component” as used herein generally represent software, firmware,hardware, or a combination thereof. The features of the techniquesdescribed herein are platform-independent, meaning that the techniquesmay be implemented on a variety of commercial computing platforms havinga variety of processors.

An implementation of the described modules and techniques may be storedon or transmitted across some form of computer-readable media. Thecomputer-readable media may include a variety of media that may beaccessed by the computing device 1202. By way of example, and notlimitation, computer-readable media may include “computer-readablestorage media” and “computer-readable signal media.”

“Computer-readable storage media” (also referred to as“computer-readable storage memory”) may refer to media and/or devicesthat enable persistent and/or non-transitory storage of information incontrast to mere signal transmission, carrier waves, or signals per se.Thus, computer-readable storage media refers to non-signal bearingmedia. The computer-readable storage media includes hardware such asvolatile and non-volatile, removable and non-removable media and/orstorage devices implemented in a method or technology suitable forstorage of information such as computer readable instructions, datastructures, program modules, logic elements/circuits, or other data.Examples of computer-readable storage media may include, but are notlimited to, RAM, ROM, EEPROM, flash memory or other memory technology,CD-ROM, digital versatile disks (DVD) or other optical storage, harddisks, magnetic cassettes, magnetic tape, magnetic disk storage or othermagnetic storage devices, or other storage device, tangible media, orarticle of manufacture suitable to store the desired information andwhich may be accessed by a computer.

“Computer-readable signal media” may refer to a signal-bearing mediumthat is configured to transmit instructions to the hardware of thecomputing device 1202, such as via a network. Signal media typically mayembody computer readable instructions, data structures, program modules,or other data in a modulated data signal, such as carrier waves, datasignals, or other transport mechanism. Signal media also include anyinformation delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media include wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared, and other wireless media.

As previously described, hardware elements 1210 and computer-readablemedia 1206 are representative of modules, programmable device logicand/or fixed device logic implemented in a hardware form that may beemployed in some embodiments to implement at least some aspects of thetechniques described herein, such as to perform one or moreinstructions. Hardware may include components of an integrated circuitor on-chip system, an application-specific integrated circuit (ASIC), afield-programmable gate array (FPGA), a complex programmable logicdevice (CPLD), and other implementations in silicon or other hardware.In this context, hardware may operate as a processing device thatperforms program tasks defined by instructions and/or logic embodied bythe hardware as well as a hardware utilized to store instructions forexecution, e.g., the computer-readable storage media describedpreviously.

Combinations of the foregoing may also be employed to implement varioustechniques described herein. Accordingly, software, hardware, orexecutable modules may be implemented as one or more instructions and/orlogic embodied on some form of computer-readable storage media and/or byone or more hardware elements 1210. The computing device 1202 may beconfigured to implement particular instructions and/or functionscorresponding to the software and/or hardware modules. Accordingly,implementation of a module that is executable by the computing device1202 as software may be achieved at least partially in hardware, e.g.,through use of computer-readable storage media and/or hardware elements1210 of the processing system 1204. The instructions and/or functionsmay be executable/operable by one or more articles of manufacture (forexample, one or more computing devices 1202 and/or processing systems1204) to implement techniques, modules, and examples described herein.

The techniques described herein may be supported by variousconfigurations of the computing device 1202 and are not limited to thespecific examples of the techniques described herein. This functionalitymay also be implemented all or in part through use of a distributedsystem, such as over a “cloud” 1214 via a platform 1216 as describedbelow.

The cloud 1214 includes and/or is representative of a platform 1216 forresources 1218. The platform 1216 abstracts underlying functionality ofhardware (e.g., servers) and software resources of the cloud 1214. Theresources 1218 may include applications and/or data that can be utilizedwhile computer processing is executed on servers that are remote fromthe computing device 1202. Resources 1218 can also include servicesprovided over the Internet and/or through a subscriber network, such asa cellular or Wi-Fi network.

The platform 1216 may abstract resources and functions to connect thecomputing device 1202 with other computing devices. The platform 1216may also serve to abstract scaling of resources to provide acorresponding level of scale to encountered demand for the resources1218 that are implemented via the platform 1216. Accordingly, in aninterconnected device embodiment, implementation of functionalitydescribed herein may be distributed throughout the system 1200. Forexample, the functionality may be implemented in part on the computingdevice 1202 as well as via the platform 1216 that abstracts thefunctionality of the cloud 1214.

CONCLUSION

Although the invention has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the invention defined in the appended claims is not necessarilylimited to the specific features or acts described. Rather, the specificfeatures and acts are disclosed as example forms of implementing theclaimed invention.

What is claimed is:
 1. A system comprising: a scoring module implemented at least partially in hardware to assign scores to a plurality of grid layouts by applying aesthetic criteria to first digital content and second digital content in a first grid layout, and to the first digital content and the second digital content in one or more other grid layouts; an output module implemented at least partially in the hardware to output, in a user interface, the first grid layout of the plurality of grid layouts based on the scores; and a layout module implemented at least partially in the hardware to: receive user input to select a second grid layout that includes fewer cells than the first grid layout; determine, based on the first digital content in a first cell of the first grid layout being visually aligned with the second digital content in a second cell of the first grid layout, that the first digital content and the second digital content are to be grouped together in a third cell of the second grid layout; and move the first digital content and the second digital content from the first cell and the second cell of the first grid layout, respectively, to the third cell of the second grid layout.
 2. The system as recited in claim 1, further comprising a layout module implemented at least partially in the hardware to generate the first grid layout and the one or more other grid layouts by utilizing layout heuristics to place the first digital content and the second digital content into cells of the first grid layout and the second grid layout.
 3. The system as recited in claim 1, wherein the scoring module is further configured to assign the scores to the plurality of grid layouts by applying layout heuristics to the first digital content and the second digital content in the first grid layout, and to the first digital content and the second digital content in the one or more other grid layouts.
 4. The system as recited in claim 1, wherein the aesthetic criteria include one or more preferred aspect ratios for cells within grid layouts.
 5. The system as recited in claim 1, wherein the layout module is further implemented to maintain the visual alignment of the first digital content and the second digital content when the first digital content and the second digital content are moved to the third cell of the second grid layout.
 6. The system as recited in claim 1, wherein the second grid layout includes a fourth cell populated with third digital content, and wherein the third cell represents a foreground cell that at least partially overlaps the fourth cell.
 7. The system as recited in claim 6, wherein the third cell is at least partially transparent such that the third digital content in the fourth cell is at least partially visible through the third cell.
 8. The system as recited in claim 6, wherein the third cell at least partially visually occludes the third digital content in the fourth cell.
 9. The system as recited in claim 1, wherein the layout module is further implemented to determine that reformatting is disabled for one or more of the first digital content or the second digital content, and to prevent the one or more of the first digital content or the second digital content from being reformatted when moved to the third cell of the second grid layout.
 10. A method implemented by at least one computing device, the method comprising: displaying, by the at least one computing device, a first grid layout of a graphic design that includes a first cell adjacent a second cell and a third cell, the third cell including an instance of content in the first grid layout; receiving, by the at least one computing device, user input selecting a second grid layout that has fewer cells than the first grid layout; and dynamically modifying, automatically and by the at least one computing device, the first grid layout to generate the second grid layout by combining digital content from the first cell and the second cell into a fourth cell that represents a foreground cell in the second grid layout that overlaps the third cell in the second grid layout such that digital content displayed in the fourth cell at least partially visually occludes, in the second grid layout, the instance of content displayed in the third cell.
 11. The method as recited in claim 10, further comprising scoring the first grid layout and the second grid layout by applying aesthetic criteria to the first grid layout and the second grid layout, and presenting the first grid layout and the second grid layout for user interaction based on their respective scores.
 12. The method as recited in claim 11, wherein the aesthetic criteria include one or more preferred aspect ratios for cells within grid layouts.
 13. The method as recited in claim 10, wherein the fourth cell is at least partially transparent such that at least some of the instance of content displayed in the third cell is visible through the fourth cell.
 14. The method as recited in claim 10, wherein the digital content from the first cell and the second cell includes first digital content in the first cell, and second digital content in the second cell, wherein the method further comprises: determining that the first digital content and the second digital content are visually aligned in the first grid layout; and grouping the first digital content and the second digital content as part of the digital content displayed in the fourth cell based on said determining that the first digital content and the second digital content are visually aligned in the first grid layout.
 15. The method as recited in claim 10, wherein the digital content from the first cell and the second cell includes first digital content in the first cell, and second digital content in the second cell, wherein the method further comprises: determining that the first digital content and the second digital content are proximate each other in the first grid layout; and grouping the first digital content and the second digital content as part of the digital content displayed in the fourth cell based on said determining that the first digital content and the second digital content are proximate each other in the first grid layout.
 16. The method as recited in claim 10, further comprising: determining that formatting is disabled for at least some of the content from the first cell and the second cell; and preventing the at least some of the content from the first cell and the second cell from being reformatted when combined into the fourth cell.
 17. A system comprising: one or more processors; and one or more computer-readable storage media storing instructions that are executable by the one or more processors to: assign scores to individual grid layout suggestions of a plurality of grid layouts by applying aesthetic criteria to first digital content in a first cell according to a first grid layout, and to the first digital content in a second cell according to a second grid layout; control output in a user interface of the first grid layout based on the assigned score for the first grid layout; receive user input to the first grid layout moving the first digital content from the first cell to a third cell in the first grid layout, and cause the first digital content to be moved to the third cell, and second digital content within the third cell to be moved from the third cell to the first cell; and determine that reformatting is disabled for the first digital content such that the first digital content is prevented from being reformatted when moved to the third cell.
 18. The system as described in claim 17, wherein the aesthetic criteria include one or more preferred aspect ratios for cells within grid layouts.
 19. The system as described in claim 17, wherein the instructions are further executable by the one or more processors to automatically move the second digital content from the third cell to the first cell based on determining that, prior to the user input, the first digital content and the second digital content are visually aligned.
 20. The system as described in claim 17, wherein the instructions are further executable by the one or more processors to determine that resizing is disabled for the first digital content such that the first digital content is prevented from being resized when moved to the third cell. 